const { app, BrowserWindow, globalShortcut, Menu } = require('electron');



let win;
function createWindow() {
  win = new BrowserWindow({width: 800, height: 600});

  // 加载应用的 index.html
  win.loadFile('index.html');

  // 打开开发者工具
  win.webContents.openDevTools()

  // 菜单
  let template = [{
    label: '应用',
    submenu: [{
        label: '编辑',
        submenu: [{
          label: "Undo",
          accelerator: "CmdOrCtrl+Z",
          selector: "undo:"
        }, {
          label: "Redo",
          accelerator: "Shift+CmdOrCtrl+Z",
          selector: "redo:"
        }, {
          type: "separator"
        }, {
          label: "Cut",
          accelerator: "CmdOrCtrl+X",
          selector: "cut:"
        }, {
          label: "Copy",
          accelerator: "CmdOrCtrl+C",
          selector: "copy:"
        }, {
          label: "Paste",
          accelerator: "CmdOrCtrl+V",
          selector: "paste:"
        }, {
          label: "Select All",
          accelerator: "CmdOrCtrl+A",
          selector: "selectAll:"
        }]
      },
      {
        label: '退出',
        accelerator: 'Command+Q',
        click: function () {
          app.quit();
        }
      },
    ]
  }];
  Menu.setApplicationMenu(Menu.buildFromTemplate(template));

  // 当 window 被关闭，这个事件会被触发。
  win.on('closed', () => {
    // 取消引用 window 对象，如果你的应用支持多窗口的话，
    // 通常会把多个 window 对象存放在一个数组里面，
    // 与此同时，你应该删除相应的元素。
    win = null
  })
}

app.on('ready', () => {

  // 快捷键
  // globalShortcut.register('CommandOrControl+R', () => {
  //   console.log('Commd R');
  // })

  createWindow();
});

// 当全部窗口关闭时退出。
app.on('window-all-closed', () => {
  // 在 macOS 上，除非用户用 Cmd + Q 确定地退出，
  // 否则绝大部分应用及其菜单栏会保持激活。
  if (process.platform !== 'darwin') {
    app.quit()
  }
})

app.on('activate', () => {
  // 在macOS上，当单击dock图标并且没有其他窗口打开时，
  // 通常在应用程序中重新创建一个窗口。
  if (win === null) {
    createWindow()
  }
})
